<html>
<style>
  table, th, td {
     border: 1px solid rgb(200,200,200);
     border-collapse: collapse;
     }
  table {
     table-layout: fixed;
     width: 1900px;
     }
  td {
     overflow-x: auto;
     }
  th, td {
    padding: 15px;
    text-align: left;
    vertical-align: middle;
    }
  .comments {
    color: #292;
    }
  .source-code {
    color: #22F;
    }
  .interface-parent {
    color: #AAA;
    }
  .interface-name {
    color: #000;
    }
  .check-mark {
    text-align: center;
    }
</style>
<body>
<br>

<h1>DJI Mobile SDK 4.7 to 4.8 Differences</h1>

<br>

<h2>API changes</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">4.7 Parent and Name</font></td><td width=15%><font color="#000">4.7 Code</font></td><td width=15%><font color="#000">4.8 Parent and Name</font></td><td width=15%><font color="#000">4.8 Code</font></td><td width=3%><font color="#000">Parent</font></td><td width=3%><font color="#000">Name</font></td><td width=3%><font color="#000">Type</font></td><td width=3%><font color="#000">Param</font></td><td width=3%><font color="#000">Return</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.rtk.RTK.</span><span class="interface-name">setRtkEnabled</span></td><td width=15%><span class="source-code">void setRtkEnabled(boolean enabled, @Nullable final CompletionCallback callback) </span></td><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.RTK.</span><span class="interface-name">setRtkEnabled</span></td><td width=15%><span class="source-code">void setRtkEnabled(boolean enabled, @Nullable final CompletionCallback callback) </span></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">requestGimbalControl</span></td><td width=15%><span class="source-code">void requestGimbalControl(@NonNull CompletionCallbackWith&lt;RequestGimbalControlResult&gt; callback)</span></td><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">requestLegacyGimbalControl</span></td><td width=15%><span class="source-code">void requestLegacyGimbalControl(@NonNull CompletionCallbackWith&lt;RequestGimbalControlResult&gt; callback)</span></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td><td width=3%></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.rtk.RTK.</span><span class="interface-name">isConnected</span></td><td width=15%><span class="source-code">boolean isConnected()</span></td><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.RTK.</span><span class="interface-name">isConnected</span></td><td width=15%><span class="source-code">boolean isConnected()</span></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.rtk.</span><span class="interface-name">RTK</span></td><td width=15%><span class="source-code">class RTK </span></td><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.</span><span class="interface-name">RTK</span></td><td width=15%><span class="source-code">class RTK </span></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.rtk.RTK.</span><span class="interface-name">setStateCallback</span></td><td width=15%><span class="source-code">void setStateCallback(@Nullable RTKState.Callback callback) </span></td><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.RTK.</span><span class="interface-name">setStateCallback</span></td><td width=15%><span class="source-code">void setStateCallback(@Nullable RTKState.Callback callback) </span></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%></td></tr></table><br>

<h2>APIs removed from 4.7</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">Parent and Name</font></td><td width=15%><font color="#000">Code</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">OBJECT_EMPTY_OR_NOT_AVAILABLE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError OBJECT_EMPTY_OR_NOT_AVAILABLE = new DJIFlightControllerError(" ")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">UNSUPPORTED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError UNSUPPORTED = new DJIFlightControllerError("Unsupported")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_AIRCRAFT_GOINGHOME</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_AIRCRAFT_GOINGHOME = new DJIFlightControllerError("The aircraft is going home")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_AIRCRAFT_IN_NOFLYZONE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_AIRCRAFT_IN_NOFLYZONE = new DJIFlightControllerError("The aircraft is in the no fly zone")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_AIRCRAFT_LANDING</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_AIRCRAFT_LANDING = new DJIFlightControllerError("The aircraft is landing")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_AIRCRAFT_NOT_IN_THE_AIR</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_AIRCRAFT_NOT_IN_THE_AIR = new DJIFlightControllerError("The aircraft is not in the air")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_AIRCRAFT_STARTING_MOTOR</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_AIRCRAFT_STARTING_MOTOR = new DJIFlightControllerError("The aircraft is starting the motor")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_AIRCRAFT_TAKINGOFF</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_AIRCRAFT_TAKINGOFF = new DJIFlightControllerError("The aircraft is taking off")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_ALTITUDE_TOO_HIGH</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_ALTITUDE_TOO_HIGH = new DJIFlightControllerError("The altitude is too high")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_ALTITUDE_TOO_LOW</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_ALTITUDE_TOO_LOW = new DJIFlightControllerError("The altitude is too low")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_BEGAN</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_BEGAN = new DJIFlightControllerError("began")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_CANCELED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_CANCELED = new DJIFlightControllerError("canceled")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_DISTANCE_FROM_MISSION_TARGET_TOO_LONG</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_DISTANCE_FROM_MISSION_TARGET_TOO_LONG = new DJIFlightControllerError("The distance from mission target position is too long")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_FAILED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_FAILED = new DJIFlightControllerError("failed")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_FOLLOWME_DISCONNECT_TIME_TOO_LONG</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_FOLLOWME_DISCONNECT_TIME_TOO_LONG = new DJIFlightControllerError("The disconnect time of follow me mission is too long")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_FOLLOWME_DISTANCE_TOO_LARGE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_FOLLOWME_DISTANCE_TOO_LARGE = new DJIFlightControllerError("Distance between the aircraft and mobile phone is beyond acceptable limit(must be lower than 20000m)")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_FOLLOWME_GIMBAL_PITCH_ERROR</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_FOLLOWME_GIMBAL_PITCH_ERROR = new DJIFlightControllerError("The initial pitch angle of gimbal is too large")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_GPS_NOT_READY</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_GPS_NOT_READY = new DJIFlightControllerError("GPS of aircraft is not ready")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_GPS_SIGNAL_WEAK</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_GPS_SIGNAL_WEAK = new DJIFlightControllerError("The GPS signal of the aircraft is weak")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_HIGH_PRIORITY_MISSION_EXECUTING</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_HIGH_PRIORITY_MISSION_EXECUTING = new DJIFlightControllerError("A higher priority mission is executing")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_HOMEPOINT_DIRECTION_UNKNOWN</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_HOMEPOINT_DIRECTION_UNKNOWN = new DJIFlightControllerError("The direction of the home point is unknown")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_HOMEPOINT_LOCATION_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_HOMEPOINT_LOCATION_INVALID = new DJIFlightControllerError("The latitude and longitude of the home point are invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_HOMEPOINT_NOT_PAUSED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_HOMEPOINT_NOT_PAUSED = new DJIFlightControllerError("The home point is not paused")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_HOMEPOINT_NOT_RECORDED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_HOMEPOINT_NOT_RECORDED = new DJIFlightControllerError("The home point of aircraft is not recorded")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_HOMEPOINT_PAUSED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_HOMEPOINT_PAUSED = new DJIFlightControllerError("The home point is paused")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_HOMEPOINT_VALUE_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_HOMEPOINT_VALUE_INVALID = new DJIFlightControllerError("The home point is not a valid float value")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_IN_NOVICE_MODE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_IN_NOVICE_MODE = new DJIFlightControllerError("The aircraft is in novice mode now")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_IOC_TYPE_UNKNOWN</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_IOC_TYPE_UNKNOWN = new DJIFlightControllerError("The type of IOC is unknown")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_IOC_WORKING</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_IOC_WORKING = new DJIFlightControllerError("The IOC mode is working")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_IS_FLYING</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_IS_FLYING = new DJIFlightControllerError("Aircraft is flying")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_KEY_LEVEL_LOW</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_KEY_LEVEL_LOW = new DJIFlightControllerError("The API key provided to you is not at the correct permission level")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_LOW_BATTERY</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_LOW_BATTERY = new DJIFlightControllerError("Low battery level warning")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MC_MODE_ERROR</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MC_MODE_ERROR = new DJIFlightControllerError("The mode of the main controller is error")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_ACROSS_NOFLYZONE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_ACROSS_NOFLYZONE = new DJIFlightControllerError("The mission is across the no fly zone")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_CONDITION_NOT_SATISFIED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_CONDITION_NOT_SATISFIED = new DJIFlightControllerError("The condition of the mission is not satisfied")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_CONFLICT</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_CONFLICT = new DJIFlightControllerError("There is a conflicting setting in the mission")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_ENTRYPOINT_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_ENTRYPOINT_INVALID = new DJIFlightControllerError("The entry point of the mission is invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_ESTIMATE_TIME_TOO_LONG</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_ESTIMATE_TIME_TOO_LONG = new DJIFlightControllerError("The estimated time for the mission is too long")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_HEADING_MODE_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_HEADING_MODE_INVALID = new DJIFlightControllerError("The heading mode of the mission is invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_INFO_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_INFO_INVALID = new DJIFlightControllerError("The information of the mission is invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_NOT_EXIST</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_NOT_EXIST = new DJIFlightControllerError("The mission does not exist")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_NOT_INIT</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_NOT_INIT = new DJIFlightControllerError("The mission is not initialized")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_PARAM_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_PARAM_INVALID = new DJIFlightControllerError("The parameters of the mission are invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_RADIUS_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_RADIUS_INVALID = new DJIFlightControllerError("The radius of the mission is invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_RADIUS_OVERLIMITED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_RADIUS_OVERLIMITED = new DJIFlightControllerError("The radius of mission is over the acceptable limit")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_RESUME_FAILED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_RESUME_FAILED = new DJIFlightControllerError("Failed to resume the mission")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MISSION_SPEED_TOO_LARGE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MISSION_SPEED_TOO_LARGE = new DJIFlightControllerError("The speed of the mission is too large")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MODE_ERROR</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MODE_ERROR = new DJIFlightControllerError("The control mode of the aircraft is not in the correct state")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_MOTOR_NOT_START</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_MOTOR_NOT_START = new DJIFlightControllerError("The aircraft's motor has not started")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_NAVIGATION_IS_NOT_OPEN</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_NAVIGATION_IS_NOT_OPEN = new DJIFlightControllerError("Navigation is not open")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_NOT_AUTO_MODE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_NOT_AUTO_MODE = new DJIFlightControllerError("Aircraft is not in the auto mode")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_RC_MODE_ERROR</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_RC_MODE_ERROR = new DJIFlightControllerError("Mode error, intelligent missions require that the remote controller's mode switch is in 'F' (or 'P' for N3 and A3 based aircraft or if 'F' mode does not exist)")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_TAKEOFF</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_TAKEOFF = new DJIFlightControllerError("Aircraft is taking off")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_TIMEOUT</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_TIMEOUT = new DJIFlightControllerError("Execution of this process has timed out")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_TOO_CLOSE_TO_HOMEPOINT</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_TOO_CLOSE_TO_HOMEPOINT = new DJIFlightControllerError("Aircraft is too close to home point")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_UNKNOWN</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_UNKNOWN = new DJIFlightControllerError("Unknown result")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_UNSUPPORTED_NAVIGATION_FOR_THE_PRODUCT</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_UNSUPPORTED_NAVIGATION_FOR_THE_PRODUCT = new DJIFlightControllerError("Navigation in the product is unsupported")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_UPLOAD_WAYPOINT_NUM_MAX_LIMIT</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_UPLOAD_WAYPOINT_NUM_MAX_LIMIT = new DJIFlightControllerError("Waypoint mission has reached the maximum points limit")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINTS_UPLOADING</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINTS_UPLOADING = new DJIFlightControllerError("The waypoints are still uploading")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_ACTION_PARAM_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_ACTION_PARAM_INVALID = new DJIFlightControllerError("The parameter of the waypoint action is invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_DAMPING_CHECK_FAILED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_DAMPING_CHECK_FAILED = new DJIFlightControllerError("The damping check is failed")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_DISTANCE_TOO_CLOSE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_DISTANCE_TOO_CLOSE = new DJIFlightControllerError("The waypoint distance is too close")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_DISTANCE_TOO_LONG</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_DISTANCE_TOO_LONG = new DJIFlightControllerError("The waypoint distance is too long")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_IDLE_VELOCITY_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_IDLE_VELOCITY_INVALID = new DJIFlightControllerError("The idle velocity is invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_INDEX_OVERRANGE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_INDEX_OVERRANGE = new DJIFlightControllerError("The index of the waypoint is over range")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_INFO_INVALID</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_INFO_INVALID = new DJIFlightControllerError("The information of the waypoint is invalid")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_MISSION_INFO_NOT_UPLOADED</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_MISSION_INFO_NOT_UPLOADED = new DJIFlightControllerError("The info of the waypoint mission is not completely uploaded")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_NOT_RUNNING</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_NOT_RUNNING = new DJIFlightControllerError("The waypoint mission is not running")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_REQUEST_IS_RUNNING</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_REQUEST_IS_RUNNING = new DJIFlightControllerError("The waypoint request is running")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_TOTAL_TRACE_TOO_LONG</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_TOTAL_TRACE_TOO_LONG = new DJIFlightControllerError("The total trace of the waypoint is too long")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_TRACE_TOO_LONG</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_TRACE_TOO_LONG = new DJIFlightControllerError("The trace of the waypoint is too long")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_UPLOADING</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_UPLOADING = new DJIFlightControllerError("Waypoint mission is uploading")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WAYPOINT_UPLOAD_NOT_COMPLETE</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WAYPOINT_UPLOAD_NOT_COMPLETE = new DJIFlightControllerError("The waypoint uploading is not complete")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">MISSION_RESULT_WRONG_CMD</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError MISSION_RESULT_WRONG_CMD = new DJIFlightControllerError("The command is wrong")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIFlightControllerError.</span><span class="interface-name">ALREADY_IN_THE_AIR</span></td><td width=15%><span class="source-code">static final DJIFlightControllerError ALREADY_IN_THE_AIR = new DJIFlightControllerError("If the motors are already turned on or the aircraft is already flying, the takeoff() did not execute.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">getCallback</span></td><td width=15%><span class="source-code">        VideoDataCallback getCallback()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">setCallback</span></td><td width=15%><span class="source-code">        void setCallback(@Nullable VideoDataCallback callback)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">VideoDataCallback</span></td><td width=15%><span class="source-code">interface VideoDataCallback </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">onReceive</span></td><td width=15%><span class="source-code">        void onReceive(byte[] videoBuffer, int size)</span></td></tr></table><br>

<h2>APIs added to 4.8</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">Parent and Name</font></td><td width=15%><font color="#000">Code</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.</span><span class="interface-name">AccessLocker</span></td><td width=15%><span class="source-code">class AccessLocker </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.</span><span class="interface-name">FormattingProgressState</span></td><td width=15%><span class="source-code">enum FormattingProgressState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.FormattingProgressState.</span><span class="interface-name">FAILURE</span></td><td width=15%><span class="source-code">    FAILURE(3)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.FormattingProgressState.</span><span class="interface-name">FORMATTING</span></td><td width=15%><span class="source-code">    FORMATTING(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.FormattingProgressState.</span><span class="interface-name">NONE</span></td><td width=15%><span class="source-code">    NONE(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.FormattingProgressState.</span><span class="interface-name">SUCCESSFUL</span></td><td width=15%><span class="source-code">    SUCCESSFUL(2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.</span><span class="interface-name">FormattingState</span></td><td width=15%><span class="source-code">final class FormattingState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.FormattingState.</span><span class="interface-name">Callback</span></td><td width=15%><span class="source-code">interface Callback </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.FormattingState.</span><span class="interface-name">onUpdate</span></td><td width=15%><span class="source-code">        void onUpdate(@NonNull FormattingState state)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.FormattingState.</span><span class="interface-name">getDJIDataLockerError</span></td><td width=15%><span class="source-code">DJIError getDJIDataLockerError() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.FormattingState.</span><span class="interface-name">getProgressState</span></td><td width=15%><span class="source-code">FormattingProgressState getProgressState() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.</span><span class="interface-name">AccessLockerState</span></td><td width=15%><span class="source-code">enum AccessLockerState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.AccessLockerState.</span><span class="interface-name">Callback</span></td><td width=15%><span class="source-code">interface Callback </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.AccessLockerState.</span><span class="interface-name">onUpdate</span></td><td width=15%><span class="source-code">        void onUpdate(@NonNull AccessLockerState state)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.AccessLockerState.</span><span class="interface-name">LOCKED</span></td><td width=15%><span class="source-code">    LOCKED</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.AccessLockerState.</span><span class="interface-name">NOT_INITIALIZED</span></td><td width=15%><span class="source-code">    NOT_INITIALIZED</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.AccessLockerState.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">    UNKNOWN</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.AccessLockerState.</span><span class="interface-name">UNLOCKED</span></td><td width=15%><span class="source-code">    UNLOCKED</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.</span><span class="interface-name">UserAccountInfo</span></td><td width=15%><span class="source-code">class UserAccountInfo </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.UserAccountInfo.</span><span class="interface-name">UserAccountInfo</span></td><td width=15%><span class="source-code">UserAccountInfo(String username, String securityCode) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.UserAccountInfo.</span><span class="interface-name">getSecurityCode</span></td><td width=15%><span class="source-code">String getSecurityCode() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.accesslocker.UserAccountInfo.</span><span class="interface-name">getUsername</span></td><td width=15%><span class="source-code">String getUsername() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">format</span></td><td width=15%><span class="source-code">void format(@Nullable CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">getUserAccount</span></td><td width=15%><span class="source-code">void getUserAccount(@NonNull CommonCallbacks.CompletionCallbackWith&lt;String&gt; callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">getVersion</span></td><td width=15%><span class="source-code">void getVersion(@NonNull CommonCallbacks.CompletionCallbackWith&lt;Integer&gt; callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">login</span></td><td width=15%><span class="source-code">void login(@NonNull UserAccountInfo userAccountInfo,
                      @Nullable CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">modifyUserAccount</span></td><td width=15%><span class="source-code">void modifyUserAccount(@NonNull UserAccountInfo currentUserAccountInfo,
                                  @NonNull UserAccountInfo newUserAccountInfo,
                                  @Nullable CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">resetUserAccount</span></td><td width=15%><span class="source-code">void resetUserAccount(@NonNull UserAccountInfo userAccountInfo,
                                 @Nullable CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">setAccessLockerStateCallback</span></td><td width=15%><span class="source-code">void setAccessLockerStateCallback(@Nullable AccessLockerState.Callback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">setFormattingStateCallback</span></td><td width=15%><span class="source-code">void setFormattingStateCallback(@Nullable FormattingState.Callback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">setUpUserAccount</span></td><td width=15%><span class="source-code">void setUpUserAccount(@NonNull UserAccountInfo userAccountInfo,
                                 @Nullable CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.AccessLocker.</span><span class="interface-name">getState</span></td><td width=15%><span class="source-code">AccessLockerState getState() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.</span><span class="interface-name">AccessoryAggregation</span></td><td width=15%><span class="source-code">class AccessoryAggregation extends BaseComponent </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.</span><span class="interface-name">AccessoryAggregationState</span></td><td width=15%><span class="source-code">class AccessoryAggregationState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.AccessoryAggregationState.</span><span class="interface-name">Callback</span></td><td width=15%><span class="source-code">interface Callback </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.AccessoryAggregationState.</span><span class="interface-name">onUpdate</span></td><td width=15%><span class="source-code">        void onUpdate(AccessoryAggregationState state)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.AccessoryAggregationState.</span><span class="interface-name">isBeaconConnected</span></td><td width=15%><span class="source-code">boolean isBeaconConnected() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.AccessoryAggregationState.</span><span class="interface-name">isSpeakerConnected</span></td><td width=15%><span class="source-code">boolean isSpeakerConnected() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.AccessoryAggregationState.</span><span class="interface-name">isSpotlightConnected</span></td><td width=15%><span class="source-code">boolean isSpotlightConnected() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.beacon.</span><span class="interface-name">Beacon</span></td><td width=15%><span class="source-code">class Beacon extends BaseComponent </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.beacon.Beacon.</span><span class="interface-name">getEnabled</span></td><td width=15%><span class="source-code">void getEnabled(CommonCallbacks.CompletionCallbackWith&lt;Boolean&gt; callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.beacon.Beacon.</span><span class="interface-name">setEnabled</span></td><td width=15%><span class="source-code">void setEnabled(boolean enabled, @Nullable final CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.</span><span class="interface-name">Speaker</span></td><td width=15%><span class="source-code">class Speaker extends BaseComponent </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.</span><span class="interface-name">AudioFileInfo</span></td><td width=15%><span class="source-code">class AudioFileInfo </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.AudioFileInfo.</span><span class="interface-name">AudioFileInfo</span></td><td width=15%><span class="source-code">AudioFileInfo(String fileName, SettingsDefinitions.AudioStorageLocation storageLocation) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.AudioFileInfo.</span><span class="interface-name">getFileName</span></td><td width=15%><span class="source-code">String getFileName() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.AudioFileInfo.</span><span class="interface-name">getStorageLocation</span></td><td width=15%><span class="source-code">SettingsDefinitions.AudioStorageLocation getStorageLocation() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.</span><span class="interface-name">SpeakerDataTransmissionState</span></td><td width=15%><span class="source-code">enum SpeakerDataTransmissionState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerDataTransmissionState.</span><span class="interface-name">IDLE</span></td><td width=15%><span class="source-code">        IDLE</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerDataTransmissionState.</span><span class="interface-name">READY_TO_TRANSMIT</span></td><td width=15%><span class="source-code">        READY_TO_TRANSMIT</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerDataTransmissionState.</span><span class="interface-name">TRANSMITING</span></td><td width=15%><span class="source-code">        TRANSMITING</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerDataTransmissionState.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">        UNKNOWN</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.</span><span class="interface-name">PlayMode</span></td><td width=15%><span class="source-code">enum PlayMode </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.PlayMode.</span><span class="interface-name">REPEAT_SINGLE</span></td><td width=15%><span class="source-code">        REPEAT_SINGLE(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.PlayMode.</span><span class="interface-name">SINGLE_ONCE</span></td><td width=15%><span class="source-code">        SINGLE_ONCE(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.PlayMode.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">        UNKNOWN(0xFF)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.</span><span class="interface-name">SpeakerPlayingState</span></td><td width=15%><span class="source-code">enum SpeakerPlayingState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerPlayingState.</span><span class="interface-name">PLAYING</span></td><td width=15%><span class="source-code">        PLAYING</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerPlayingState.</span><span class="interface-name">STOPPED</span></td><td width=15%><span class="source-code">        STOPPED</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerPlayingState.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">        UNKNOWN</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.</span><span class="interface-name">SpeakerState</span></td><td width=15%><span class="source-code">final class SpeakerState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerState.</span><span class="interface-name">Callback</span></td><td width=15%><span class="source-code">interface Callback </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerState.</span><span class="interface-name">onUpdate</span></td><td width=15%><span class="source-code">        void onUpdate(SpeakerState state)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerState.</span><span class="interface-name">getStorageLocation</span></td><td width=15%><span class="source-code">SettingsDefinitions.AudioStorageLocation getStorageLocation() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerState.</span><span class="interface-name">getPlayingIndex</span></td><td width=15%><span class="source-code">int getPlayingIndex() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerState.</span><span class="interface-name">getPlayingMode</span></td><td width=15%><span class="source-code">SettingsDefinitions.PlayMode getPlayingMode() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerState.</span><span class="interface-name">getPlayingState</span></td><td width=15%><span class="source-code">SettingsDefinitions.SpeakerPlayingState getPlayingState() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpeakerState.</span><span class="interface-name">getVolume</span></td><td width=15%><span class="source-code">int getVolume() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.</span><span class="interface-name">TransmissionListener</span></td><td width=15%><span class="source-code">interface TransmissionListener </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.</span><span class="interface-name">onFailure</span></td><td width=15%><span class="source-code">    void onFailure(DJIError error)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.</span><span class="interface-name">onFinish</span></td><td width=15%><span class="source-code">    void onFinish(int index)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.</span><span class="interface-name">onProgress</span></td><td width=15%><span class="source-code">    void onProgress(int dataSize)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.</span><span class="interface-name">onStart</span></td><td width=15%><span class="source-code">    void onStart()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">addFileListStateListener</span></td><td width=15%><span class="source-code">void addFileListStateListener(FileListStateListener listener) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">cancelTransmission</span></td><td width=15%><span class="source-code">void cancelTransmission() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">getDataTransmissionState</span></td><td width=15%><span class="source-code">SpeakerDataTransmissionState getDataTransmissionState() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">delete</span></td><td width=15%><span class="source-code">void delete(@NonNull List&lt;Integer&gt; fileIndices,
                       final CommonCallbacks.CompletionCallbackWithTwoParam&lt;List&lt;Integer&gt;, DJIError&gt; callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">getFileListState</span></td><td width=15%><span class="source-code">FileListState getFileListState() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">getFileListSnapshot</span></td><td width=15%><span class="source-code">List&lt;AudioMediaFile&gt; getFileListSnapshot() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">markEOF</span></td><td width=15%><span class="source-code">DJIError markEOF() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">paceData</span></td><td width=15%><span class="source-code">boolean paceData(@NonNull @Size(MAX_INPUT_SIZE) byte[] data) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">play</span></td><td width=15%><span class="source-code">void play(int fileIndex, @Nullable final CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">refreshFileList</span></td><td width=15%><span class="source-code">void refreshFileList(final CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">removeFileListStateListener</span></td><td width=15%><span class="source-code">void removeFileListStateListener(FileListStateListener listener) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">rename</span></td><td width=15%><span class="source-code">void rename(int index, String filename, final CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">setPlayMode</span></td><td width=15%><span class="source-code">void setPlayMode(@NonNull SettingsDefinitions.PlayMode mode,
                            @Nullable final CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">setStateCallback</span></td><td width=15%><span class="source-code">void setStateCallback(@Nullable SpeakerState.Callback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">setVolume</span></td><td width=15%><span class="source-code">void setVolume(@IntRange(from = MIN_VOLUME, to = MAX_VOLUME) int value,
                          @Nullable final CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">startTransmission</span></td><td width=15%><span class="source-code">void startTransmission(@NonNull AudioFileInfo info, @Nullable final TransmissionListener listener) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.speaker.Speaker.</span><span class="interface-name">stop</span></td><td width=15%><span class="source-code">void stop(@Nullable final CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.spotlight.</span><span class="interface-name">Spotlight</span></td><td width=15%><span class="source-code">class Spotlight extends BaseComponent </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.</span><span class="interface-name">SpotlightState</span></td><td width=15%><span class="source-code">class SpotlightState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpotlightState.</span><span class="interface-name">Callback</span></td><td width=15%><span class="source-code">interface Callback </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpotlightState.</span><span class="interface-name">onUpdate</span></td><td width=15%><span class="source-code">        void onUpdate(SpotlightState state)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpotlightState.</span><span class="interface-name">getBrightness</span></td><td width=15%><span class="source-code">int getBrightness() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.SpotlightState.</span><span class="interface-name">getTemperature</span></td><td width=15%><span class="source-code">float getTemperature() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.spotlight.Spotlight.</span><span class="interface-name">getEnabled</span></td><td width=15%><span class="source-code">void getEnabled(@NonNull CommonCallbacks.CompletionCallbackWith&lt;Boolean&gt; callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.spotlight.Spotlight.</span><span class="interface-name">setBrightness</span></td><td width=15%><span class="source-code">void setBrightness(@IntRange(from = 1, to = 100) int value,
                              @Nullable final CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.spotlight.Spotlight.</span><span class="interface-name">setEnabled</span></td><td width=15%><span class="source-code">void setEnabled(boolean enabled, @Nullable final CommonCallbacks.CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.spotlight.Spotlight.</span><span class="interface-name">setStateCallback</span></td><td width=15%><span class="source-code">void setStateCallback(@Nullable SpotlightState.Callback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.spotlight.Spotlight.</span><span class="interface-name">getState</span></td><td width=15%><span class="source-code">SpotlightState getState() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.AccessoryAggregation.</span><span class="interface-name">getBeacon</span></td><td width=15%><span class="source-code">Beacon getBeacon() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.AccessoryAggregation.</span><span class="interface-name">getAccessoryAggregationState</span></td><td width=15%><span class="source-code">AccessoryAggregationState getAccessoryAggregationState() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.AccessoryAggregation.</span><span class="interface-name">setStateCallback</span></td><td width=15%><span class="source-code">void setStateCallback(@Nullable AccessoryAggregationState.Callback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.AccessoryAggregation.</span><span class="interface-name">getSpeaker</span></td><td width=15%><span class="source-code">Speaker getSpeaker() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.accessory.AccessoryAggregation.</span><span class="interface-name">getSpotlight</span></td><td width=15%><span class="source-code">Spotlight getSpotlight() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.keysdk.</span><span class="interface-name">AccessoryAggregationKey</span></td><td width=15%><span class="source-code">class AccessoryAggregationKey extends DJIKey </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.keysdk.AccessoryAggregationKey.</span><span class="interface-name">createBeaconKey</span></td><td width=15%><span class="source-code">static AccessoryAggregationKey createBeaconKey(@BeaconParamKey @NonNull String paramKey) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.keysdk.AccessoryAggregationKey.</span><span class="interface-name">createSpeakerKey</span></td><td width=15%><span class="source-code">static AccessoryAggregationKey createSpeakerKey(@SpeakerParamKey @NonNull String paramKey) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.keysdk.AccessoryAggregationKey.</span><span class="interface-name">createSpotlightKey</span></td><td width=15%><span class="source-code">static AccessoryAggregationKey createSpotlightKey(@SpotlightParamKey @NonNull String paramKey) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.keysdk.AccessoryAggregationKey.</span><span class="interface-name">create</span></td><td width=15%><span class="source-code">static AccessoryAggregationKey create(@AccessoryAggregationParamKey @NonNull String paramKey) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.keysdk.AccessoryAggregationKey.</span><span class="interface-name">create</span></td><td width=15%><span class="source-code">static AccessoryAggregationKey create(@AccessoryAggregationParamKey @NonNull String paramKey,
                                                 @IntRange(from = 0, to = MAX_COMPONENT_INDEX) int componentIndex) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.product.Model.</span><span class="interface-name">MAVIC_2_ENTERPRISE</span></td><td width=15%><span class="source-code">    MAVIC_2_ENTERPRISE("Mavic 2 Enterprise")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.base.BaseProduct.ComponentKey.</span><span class="interface-name">ACCESSORY_AGGREGATION</span></td><td width=15%><span class="source-code">        ACCESSORY_AGGREGATION</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.base.BaseProduct.</span><span class="interface-name">getAccessoryAggregation</span></td><td width=15%><span class="source-code">AccessoryAggregation getAccessoryAggregation() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.battery.BatteryState.</span><span class="interface-name">getSelfHeatingState</span></td><td width=15%><span class="source-code">SelfHeatingState getSelfHeatingState() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.battery.</span><span class="interface-name">SelfHeatingState</span></td><td width=15%><span class="source-code">enum SelfHeatingState </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.battery.SelfHeatingState.</span><span class="interface-name">IDLE</span></td><td width=15%><span class="source-code">    IDLE(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.battery.SelfHeatingState.</span><span class="interface-name">PRESERVING</span></td><td width=15%><span class="source-code">    PRESERVING(2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.battery.SelfHeatingState.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">    UNKNOWN(0xFF)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.battery.SelfHeatingState.</span><span class="interface-name">WARMING_UP</span></td><td width=15%><span class="source-code">    WARMING_UP(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.flightcontroller.flightassistant.BottomAuxiliaryLightMode.</span><span class="interface-name">BEACON</span></td><td width=15%><span class="source-code">    BEACON(3)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.Camera.</span><span class="interface-name">DisplayNameMavic2EnterpriseCamera</span></td><td width=15%><span class="source-code">static final String DisplayNameMavic2EnterpriseCamera = DJICameraAbstraction.DisplayNameMavic2EnterpriseCamera</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.</span><span class="interface-name">WatermarkSettings</span></td><td width=15%><span class="source-code">class WatermarkSettings </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.WatermarkSettings.</span><span class="interface-name">WatermarkSettings</span></td><td width=15%><span class="source-code">WatermarkSettings(boolean enabledForVideos, boolean enabledForPhotos) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.WatermarkSettings.</span><span class="interface-name">isEnabledForPhotos</span></td><td width=15%><span class="source-code">boolean isEnabledForPhotos() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.camera.WatermarkSettings.</span><span class="interface-name">isEnabledForVideos</span></td><td width=15%><span class="source-code">boolean isEnabledForVideos() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.Camera.</span><span class="interface-name">getWatermarkSettings</span></td><td width=15%><span class="source-code">void getWatermarkSettings(@NonNull final CompletionCallbackWith&lt;WatermarkSettings&gt; callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.Camera.</span><span class="interface-name">setWatermarkSettings</span></td><td width=15%><span class="source-code">void setWatermarkSettings(WatermarkSettings config, @Nullable final CompletionCallback callback) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.</span><span class="interface-name">DJIAccessLockerError</span></td><td width=15%><span class="source-code">class DJIAccessLockerError extends DJIError </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">ALREADY_UNLOCKED</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError ALREADY_UNLOCKED =
        new DJIAccessLockerError("The aircraft is already unlocked.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">FIRMWARE_READ_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError FIRMWARE_READ_ERROR = new DJIAccessLockerError("Read failure when accessing data in the firmware.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">FIRMWARE_WRITE_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError FIRMWARE_WRITE_ERROR = new DJIAccessLockerError("Write failure when updating data in the firmware.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">INVALID_STATE</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError INVALID_STATE = new DJIAccessLockerError("The command is not valid in current state.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">NOT_SET_UP_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError NOT_SET_UP_ERROR =
        new DJIAccessLockerError("The user account is not set up for the security feature yet.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">SECURITY_CODE_FORMAT_INVALID</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError SECURITY_CODE_FORMAT_INVALID= new DJIAccessLockerError("The new security code is not valid.A valid security code should contain only numbers and letters and its length is not less than 6 characters and not longer than 8 characters.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">SECURITY_CODE_INCORRECT</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError
        SECURITY_CODE_INCORRECT= new DJIAccessLockerError("The security code is incorrect.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">SECURITY_CODE_INCORRECT_FIVE_TIMES</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError SECURITY_CODE_INCORRECT_FIVE_TIMES =
        new DJIAccessLockerError("Attempt with wrong security codes more than 5 times. The aircraft is disable and try again in 1 minute.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">SECURITY_CODE_INCORRECT_TWENTY_TIMES</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError SECURITY_CODE_INCORRECT_TWENTY_TIMES =
        new DJIAccessLockerError("Attempt with wrong security codes more than 20 times. The aircraft is disable and try again in 24 hours.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessLockerError.</span><span class="interface-name">USERNAME_NOT_EXIST</span></td><td width=15%><span class="source-code">static final DJIAccessLockerError USERNAME_NOT_EXIST =
        new DJIAccessLockerError("The username does not exist.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.</span><span class="interface-name">DJIAccessoryAggregationError</span></td><td width=15%><span class="source-code">class DJIAccessoryAggregationError extends DJIError </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">CANCELED_BY_USER</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        CANCELED_BY_USER = new DJIAccessoryAggregationError("The ongoing data transmission is cancelled.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">DATA_CORRUPTION_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError DATA_CORRUPTION_ERROR = new DJIAccessoryAggregationError("Data validation failed. Data is corrupted during the transmission.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">DATA_TRANSMISSION_DISCONNECTION_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError DATA_TRANSMISSION_DISCONNECTION_ERROR = new DJIAccessoryAggregationError("The connection of the speaker is broken and data transmission cannot start.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">FILE_CREATED_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        FILE_CREATED_ERROR = new DJIAccessoryAggregationError("An error occurs when creating the file.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">FILE_INDEX_UNAVAIABLE_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        FILE_INDEX_UNAVAIABLE_ERROR = new DJIAccessoryAggregationError("There is no more file index available for the file.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">DUPLICATION_OF_FILE_NAME</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        DUPLICATION_OF_FILE_NAME = new DJIAccessoryAggregationError("The file name is already taken in the aircraft. Choose a different file name.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">FILE_NAME_EMPTY_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        FILE_NAME_EMPTY_ERROR = new DJIAccessoryAggregationError("A file name cannot be empty.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">FILE_NAME_LENGTH_INVALID</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError FILE_NAME_LENGTH_INVALID = new DJIAccessoryAggregationError("The file name exceeds the maximum length (20 characters).")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">FILE_NOT_EXIST_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        FILE_NOT_EXIST_ERROR = new DJIAccessoryAggregationError("The file does not exist.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">INTERRUPTED_BY_TIMEOUT_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError INTERRUPTED_BY_TIMEOUT_ERROR = new DJIAccessoryAggregationError("The ongoing data transmission is interrupted by timeout error.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">ACCESSORY_NOT_CONNECTED_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        ACCESSORY_NOT_CONNECTED_ERROR = new DJIAccessoryAggregationError("The accessory is not connected.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">REJECTED_BY_FIRMWARE</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        REJECTED_BY_FIRMWARE = new DJIAccessoryAggregationError("The operation is rejected by the firmware because state error.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">RENAME_FILE_ERROR</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        RENAME_FILE_ERROR = new DJIAccessoryAggregationError("Error occurs when renaming the file.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">STORAGE_FULL</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError
        STORAGE_FULL = new DJIAccessoryAggregationError("The storage is full.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIAccessoryAggregationError.</span><span class="interface-name">WRONG_DATA_TRANSIMISSION_STATE</span></td><td width=15%><span class="source-code">static final DJIAccessoryAggregationError WRONG_DATA_TRANSIMISSION_STATE = new DJIAccessoryAggregationError("The data transimission operation cannot be executed in the current state.")</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.keysdk.FlightControllerKey.</span><span class="interface-name">createAccessLockerKey</span></td><td width=15%><span class="source-code">static FlightControllerKey createAccessLockerKey(
        @AccessLockerParamKey @NonNull String paramKey) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlightController.</span><span class="interface-name">getAccessLocker</span></td><td width=15%><span class="source-code">AccessLocker getAccessLocker() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.flightcontroller.FlightController.</span><span class="interface-name">isAccessLockerSupported</span></td><td width=15%><span class="source-code">boolean isAccessLockerSupported()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.MediaManager.FileListState.</span><span class="interface-name">RENAMING</span></td><td width=15%><span class="source-code">        RENAMING</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.</span><span class="interface-name">AudioMediaFile</span></td><td width=15%><span class="source-code">class AudioMediaFile extends MediaFile </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.</span><span class="interface-name">AudioStorageLocation</span></td><td width=15%><span class="source-code">enum AudioStorageLocation </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.AudioStorageLocation.</span><span class="interface-name">PERSISTENT</span></td><td width=15%><span class="source-code">        PERSISTENT(2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.AudioStorageLocation.</span><span class="interface-name">TEMPORARY</span></td><td width=15%><span class="source-code">        TEMPORARY(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.accessory.AudioStorageLocation.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">        UNKNOWN(0xFF)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.AudioMediaFile.</span><span class="interface-name">getAudioStorageLocation</span></td><td width=15%><span class="source-code">SettingsDefinitions.AudioStorageLocation getAudioStorageLocation() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.remotecontroller.MasterSlaveState.</span><span class="interface-name">hasGimbalControl</span></td><td width=15%><span class="source-code">boolean hasGimbalControl() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNameCendence</span></td><td width=15%><span class="source-code">static final String DisplayNameCendence = DJIRCAbstraction.DisplayNameCendence</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNameInspire1</span></td><td width=15%><span class="source-code">static final String DisplayNameInspire1 = DJIRCAbstraction.DisplayNameInspire1</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNameInspire2</span></td><td width=15%><span class="source-code">static final String DisplayNameInspire2 = DJIRCAbstraction.DisplayNameInspire2</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNameLightbridge2</span></td><td width=15%><span class="source-code">static final String DisplayNameLightbridge2 = DJIRCAbstraction.DisplayNameLightbridge2</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNameMavic2</span></td><td width=15%><span class="source-code">static final String DisplayNameMavic2 = DJIRCAbstraction.DisplayNameMavic2</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNameMavicAir</span></td><td width=15%><span class="source-code">static final String DisplayNameMavicAir = DJIRCAbstraction.DisplayNameMavicAir</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNameMavicPro</span></td><td width=15%><span class="source-code">static final String DisplayNameMavicPro = DJIRCAbstraction.DisplayNameMavicPro</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNamePhantom3Professinal</span></td><td width=15%><span class="source-code">static final String DisplayNamePhantom3Professinal = DJIRCAbstraction.DisplayNamePhantom3Professinal</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNamePhantom3Standard</span></td><td width=15%><span class="source-code">static final String DisplayNamePhantom3Standard = DJIRCAbstraction.DisplayNamePhantom3Standard</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNamePhantom4Advanced</span></td><td width=15%><span class="source-code">static final String DisplayNamePhantom4Advanced = DJIRCAbstraction.DisplayNamePhantom4Advanced</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNamePhantom4Pro</span></td><td width=15%><span class="source-code">static final String DisplayNamePhantom4Pro = DJIRCAbstraction.DisplayNamePhantom4Pro</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNamePhantom4ProV2</span></td><td width=15%><span class="source-code">static final String DisplayNamePhantom4ProV2 = DJIRCAbstraction.DisplayNamePhantom4ProV2</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">DisplayNameSpark</span></td><td width=15%><span class="source-code">static final String DisplayNameSpark = DJIRCAbstraction.DisplayNameSpark</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.remotecontroller.RemoteController.</span><span class="interface-name">requestGimbalControl</span></td><td width=15%><span class="source-code">void requestGimbalControl(@Nullable CompletionCallback callback)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.useraccount.UserAccountManager.</span><span class="interface-name">UserAccountStateChangeListener</span></td><td width=15%><span class="source-code">interface UserAccountStateChangeListener </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.useraccount.UserAccountManager.</span><span class="interface-name">onUserAccountStateChanged</span></td><td width=15%><span class="source-code">        void onUserAccountStateChanged(UserAccountState state, UserAccountInformation information)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.useraccount.UserAccountManager.</span><span class="interface-name">addUserAccountStateChangeListener</span></td><td width=15%><span class="source-code">void addUserAccountStateChangeListener(UserAccountStateChangeListener listener) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.useraccount.UserAccountManager.</span><span class="interface-name">removeUserAccountStateChangeListener</span></td><td width=15%><span class="source-code">void removeUserAccountStateChangeListener(UserAccountStateChangeListener listener) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">addVideoDataListener</span></td><td width=15%><span class="source-code">        boolean addVideoDataListener(@NonNull final VideoDataListener listener)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">destroy</span></td><td width=15%><span class="source-code">        void destroy()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">getListeners</span></td><td width=15%><span class="source-code">        Set&lt;VideoDataListener&gt; getListeners()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">removeVideoDataListener</span></td><td width=15%><span class="source-code">        boolean removeVideoDataListener(VideoDataListener listener)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">VideoDataListener</span></td><td width=15%><span class="source-code">interface VideoDataListener </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.VideoFeeder.</span><span class="interface-name">onReceive</span></td><td width=15%><span class="source-code">        void onReceive(byte[] videoBuffer, int size)</span></td></tr></table><p style="font-size:50%; color:white">fb5f6ab 5c04423 bd2b636 92a32bf 0ee4a98 98e6670 </p></body>
</html>

